package chap4_4对象序列化流;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;

/**
 * @author https://gitee.com/W_Jun
 * @date 2021-12-17 13:40
 * @Description  对象序列化流
 */
public class ObjectOutputStreamDemo {
    public static void main(String[] args) throws IOException {
        ObjectOutputStream oos = new ObjectOutputStream(
                new FileOutputStream("chapter04-特殊操作流\\src\\chap4_4对象序列化流\\oos.txt"));
        //创建对象
        Student s = new Student("张三",30);
        //void writeObject(Object obj)
        oos.writeObject(s);
        //释放资源
        oos.close();

        //如果Student没有实现Serializable接口：会报异常
        //Exception in thread "main" java.io.NotSerializableException: chap4_4对象序列化流.Student
        //NotSerializableException：抛出一个实例需要一个Serializable接口。序列化运行时或实例的类可能会抛出此异常
        //类的序列化由实现java.io.Serializable接口的类启动。不实现此接口的类将不会使任何状态序列化或反序列化。
        //Serializable是一个标识接口，里面没有方法。
    }
}
